package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.SignalSiteInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护信号机点位信息的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboSignalSiteInfoService {
	/**
	 * 返回所有信号机点位信息
	 * @return ResultPojo 所有信号机点位信息
	 */
	public ResultPojo getSignalSiteInfo();
	
	/**
	 * 分页返回所有信号机点位信息
	 * @param page 分页对象
	 * @return ResultPojo 包含信号机点位信息的分页对象
	 */
	public ResultPojo getPageSignalSiteInfo(Page page);
	/**
	 * 返回所有信号机点位信息
	 * @param manufact 
	 * @param regionId 
	 * @param netMode 
	 * @param deviceStatusCode 
	 * @param orderSeq 
	 * @param ssName 
	 * @param ssId 
	 * @return ResultPojo 所有信号机点位信息
	 */
	public ResultPojo getSignalSiteInfo(String ssId, String ssName, String orderSeq, String deviceStatusCode, String netMode, String regionId, String manufact);
	
	/**
	 * 分页返回所有信号机点位信息
	 * @param page 分页对象
	 * @param manufact 
	 * @param regionId 
	 * @param netMode 
	 * @param deviceStatusCode 
	 * @param orderSeq 
	 * @param ssName 
	 * @param ssId 
	 * @return ResultPojo 包含信号机点位信息的分页对象
	 */
	public ResultPojo getPageSignalSiteInfo(Page page, String ssId, String ssName, String orderSeq, String deviceStatusCode, String netMode, String regionId, String manufact);
	
	/**
	 * 返回指定编码的信号机点位信息
	 * @param ssId 信号机点位编码
	 * @return ResultPojo 信号机点位信息
	 */
	public ResultPojo getSignalSiteInfoById(String ssId);
	
	/**
	 * 按名称匹配并返回信号机点位信息
	 * @param ssName 信号机点位名称
	 * @return ResultPojo 信号机点位信息
	 */
	public ResultPojo getSignalSiteInfoByName(String ssName);
	
	/**
	 * 返回与前缀相匹配的信号机点位最大编码值，用于手工生成新的点位编码
	 * @param prefixSsId 信号机点位编码前缀
	 * @return 与前缀相匹配的信号机点位最大编码值
	 */
	public String getMaxSsId(String prefixSsId);
	
	/**
	 * 添加一条信号机点位信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param signalSiteInfoDto 信号机点位信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addSignalSiteInfo(String token, SignalSiteInfoDto signalSiteInfoDto);
	
	/**
	 * 修改一条信号机点位信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param signalSiteInfoDto 信号机点位信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editSignalSiteInfo(String token, SignalSiteInfoDto signalSiteInfoDto);
	
	/**
	 * 删除指定编码的信号机点位信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param ssId 信号机点位编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeSignalSiteInfo(String token, String ssId);

	public ResultPojo getPageEasyUiSignalSiteInfo(Page page, String ssId, String ssName, String orderSeq,
			String deviceStatusCode, String netMode, String regionId, String manufact,String manageDept);

}
